<?php

    // подцепляем наш сайт к системе, для того, чтобы система могла работать с нами
    $mikron->Site = new mikron_site_ex();

    // класс сайта
    class mikron_site_ex // extends mikron_site // implements mikron_site
    {
        public $auth; //authentification;
        function __construct()
        {

        }
        // Схемы сайта
        function Schemas()
        {
            $ret = Array();
            // файл схемы для текущего сайта
            $ret[] = Array("file"=>dirname(__FILE__)."/schema.xml", "name"=>"Схема текущего сайта");
            return $ret;
        }
        // Вызывается при обновлении сайта
        function Setup()
        {
            global $mikron;
            // добавление пункта меню в главное меню админки
            //$mikron->addmenu("Сайт/Автоматизация/Проверить письма", "/mikron/sites/7chances2/email.php");
            //$mikron->addmenu("Сайт/Автоматизация/Проверить купоны", "/mikron/sites/7chances2/sms_billing.php");
            /*foreach($this->Schemas() as $schema)
            {
               $mikron->Schema->Add($schema['file'], $schema['name']) ;
            }*/
        }

        // Вызывается из процедуры $mikron->Page->StartBody();
        function main()
        {
            //require_once(dirname(__FILE__)."/gameform.inc");
            //require_once(dirname(__FILE__)."/auth.inc");
            //$this->auth = new authentification(Array("/cabinet", "/auth"));            
        }

        function getSettings()
        {
            global $mikron;
            $sf = $mikron->EntityManager->Query('SETTINGSFORM');
            if(count($sf) > 0)
            {
                $sf = $sf[0];
            }
            else
            {
                $sf = new SETTINGSFORM();
            }
            return $sf;
        }

    }

    // Главное меню
    function getMenu($params = null)
    {
        global $mikron;
        $cat = 1;
        if(!is_array($params))
        {
            $params = Array();
        }
        if(array_key_exists('category', $params))
        {
            $cat = (int)$params['category'];
        }
        if($cat == 4)
        {
            return getLeftMenu($params);
        }
        $items = $mikron->EntityManager->Query("T_MENU", null, new Criterion('menugroup', $cat));
        $curpage = $mikron->Page->getCurrentPage();
        foreach($items as $item)
        {
            $title = $item->title->value;
            $url = $item->toURL();
            $included_menu = substr($curpage, 0, strlen($url)) == $url;
            $is_main_url = ($url == "/");
            $ok_url = $curpage == $url;
            /*
                echo $included_menu?1:0;
                echo $is_main_url?1:0;
                echo $ok_url?1:0;
            */
            if(($ok_url && $is_main_url) || (!$is_main_url && $included_menu ))
            {
                ?><span class="whitelinkselectedlink"><?php echo $title;?></span><?php
            }
            else
            {
                ?><a class="whitelink" href="<?php echo $url;?>"><?php echo $title;?></a><?php
            }
            echo "&nbsp;&nbsp;&nbsp;";
        }
    }

    function GuestForm()
    {
        if(isset($_GET['ok']))
        {
          $id = $_GET['ok'];
          echo "Данное сообщение сформировано автоматически.
          <br />Ваше обращение зарегистрировано под № «".$id."».
          <br />С уважением, служба поддержки ЗАО «Система
          Витакарта».";
        }
        else
        {
            if(isset($_GET['error']) && array_key_exists('error', $_SESSION))
            {
                echo sprintf('<div class="errortext">%s</div>', $_SESSION['error']);
            }
            echo '{{userform entityname="T_CONTACTMESSAGE" id=0 captcha=1 caption="Сообщение администрации сайта" returnpage="/contacts/?ok=%ID%" errorpage="/contacts/?error" processor="/contacts/"}}';
        }
    }

    function BottomBlock()
    {
        if(!isset($_SESSION))
        {
            session_start();
        }
        if(isset($_SESSION['user']))
        {
            ?><div style="padding-right: 1em; text-align: right; "><a href="/?logout">Выйти</a></div><?php
        }
    }


    // Главное меню
    function getLeftMenu($params)
    {
        global $mikron;
        $cat = 1;
        if(!is_array($params))
        {
            $params = Array();
        }
        if(array_key_exists('category', $params))
        {
            $cat = (int)$params['category'];
        }
        $items = $mikron->EntityManager->Query("T_MENU", null);
        $curpage = $mikron->Page->getCurrentPage();
        $curpage2 = $curpage;
        $pos = strpos($curpage, "?");
        if($pos !== false)
        {
            $curpage = substr($curpage, 0, $pos);
        }

        $parentmenu = 0;
        foreach($items as $item)
        {
            $url = $item->link->value;
            if($curpage == $url || $curpage2 == $url)
            {
                $parentmenu = $item->id;
                break;
            }
        }
        reset($items);
        foreach($items as $item)
        {
            $url = $item->link->value;
            if(!is_null($item->parentmenu->value))
            {
                if($curpage == $item->link->value)
                {
                    $parentmenu = $item->parentmenu->value->id;
                    break;
                }
            }
        }
        $items = $mikron->EntityManager->Query("T_MENU", null, "`menugroup` = $cat AND `parentmenu` = $parentmenu");
        ?><h3><?php
        $cnt = count($items);
        $i = 0;
        foreach($items as $item)
        {
            $title = $item->title->value;
            $url = $item->toURL();
            if($curpage == $url)
            {
                echo $title;
            }
            else
            {
                ?><a href="<?php echo $url;?>"><?php echo $title;?></a><?php
            }
            if($i < $cnt-1)
            {
                echo "<br />";
                echo "<br />";
            }
            $i++;
        }
        ?></h3><?php
    }

    function TechForm()
    {
        if(isset($_GET['ok']))
        {
            $id = (int)$_GET['ok'];
            $e = new T_TICKET($id);
            $dt = $e->dt->value;
            if(is_null($e->cabinet->value))
            {
                $acc = $_SESSION['useraccount'];
                try
                {
                    $e->cabinet->value = $acc->id;
                    $e->Save();
                }
                catch(Exception $ex)
                {
                    CriticalError($ex->getMessage(), null, true);
                }
            }
            echo "Данное сообщение сформировано автоматически.
                    <br />Ваша заявка зарегистрирована,
                    <br />№ заявки «".$id."» дата заявки «".$dt."».
                    <br />С уважением, служба поддержки ЗАО «Система
                    Витакарта».";
        }
        else
        {
            echo '{{userform entityname="T_TICKET" captcha=1 id=0 caption="Техническая поддержка" returnpage="/updates/support/?ok=%ID%" processor="/updates/support/"}}';
        }
    }

    function Presentation($params)
    {
        global $mikron;
        $name = null;
        if(array_key_exists('name', $params))
        {
            $name = $params['name'];
        }
        $name2 = quote_smart($name);
        $presentations = $mikron->EntityManager->Query("T_PRESENTATION", null, new Criterion('code', $name));
        if(count($presentations) < 1)
        {
            CriticalError("Презентация $name не найдена.", null, true);
        }
        $presentation = $presentations[0];
        $pid = $presentation->id;
        $slides = $mikron->EntityManager->Query("T_SLIDE", null, new Criterion('presentation', $pid));
        if(count($slides) < 1)
        {
            CriticalError("Презентация $name не содержит слайдов.", null, true);
        }
        $tbl = new html_table(1, null, null, 0, 8);
            $tbl->newcol($presentation->toString());
            foreach($slides as $slide)
            {
                $tbl->newcol();
                startshadowbox();
                echo $slide->toString();
                endshadowbox();
            }
        $tbl->end();
    }

 ?>